﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Librerias;


namespace eCampus
{
    /// <summary>
    /// Formulario para Consultar las asignaturas
    /// </summary>
    public partial class FormConsultarAsignaturasCreadas : Form
    {
        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public FormConsultarAsignaturasCreadas()
        {
             InitializeComponent();
             RellenarDatagrid(true);
             cbFiltro.SelectedIndex = 1;
        }

        /// <summary>
        /// Nueva asignatura
        /// </summary>
        /// <param name="sender">btNuevo </param>
        /// <param name="e">Click</param>
        public void btNuevo_Click(object sender, EventArgs e)
        {
            FormAsignaturaCrear1 FormularioCrearAsignatura = new FormAsignaturaCrear1();
            FormularioCrearAsignatura.ShowDialog();
            RellenarDatagrid();
        }
      

        /// <summary>
        /// Rellena el datagrind
        /// </summary>
        /// <param name="primera"></param>
        private void RellenarDatagrid(bool primera = false)
        {
            //Intentamos
            if (btTodasAsignaturas.Visible)
            {
                dgAsignaturas.DataSource = new ENAsignatura().ConsultaAsignaturas(tbBuscar.Text, cbFiltro.SelectedIndex);
            }
            else
            {
                dgAsignaturas.DataSource = new ENAsignatura().GetAsignaturas();
            }

            if (primera)
            {
                //Añade columna borrar
                DataGridViewImageColumn ColEliminar = new DataGridViewImageColumn();
                ColEliminar.Name = "elim";
                ColEliminar.HeaderText = "";
                ColEliminar.Image = eCampus.Properties.Resources.btBorrar;
                ColEliminar.Width = 40;
                dgAsignaturas.Columns.Add(ColEliminar);

                //TEXTO DE LA CABECERA DE LAS COLUMNAS
                dgAsignaturas.Columns["asiCodigo"].HeaderText = "Codigo";
                dgAsignaturas.Columns["asiNombre"].HeaderText = "Nombre";
                dgAsignaturas.Columns["asiCreditos"].HeaderText = "Creditos";
                dgAsignaturas.Columns["asiReferencia"].Visible = false;
                dgAsignaturas.Columns["asiCuatrimestre"].HeaderText = "Cuatrimestre";


                dgAsignaturas.Columns["asiNombre"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            }
            
           dgAsignaturas.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGoldenrodYellow;
        }
        
        /// <summary>
        /// Modificar asignatura
        /// </summary>
        /// <param name="sender">dgAsignaturas</param>
        /// <param name="e">CellDoubleClick</param>
        private void dgAsignaturas_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
             int mod = 1;
            if (e.RowIndex >= 0)
            {
                try
                {
                    ENAsignatura asignatura = new ENAsignatura(dgAsignaturas["asiCodigo", e.RowIndex].Value.ToString(),
                                                                dgAsignaturas["asiNombre", e.RowIndex].Value.ToString(),
                                                               float.Parse(dgAsignaturas["asiCreditos", e.RowIndex].Value.ToString()),
                                                                dgAsignaturas["asiReferencia", e.RowIndex].Value.ToString(),
                                                                int.Parse(dgAsignaturas["asiCuatrimestre", e.RowIndex].Value.ToString()));

                    FormAsignaturaCrear1 n = new FormAsignaturaCrear1(asignatura, mod);
                    n.ShowDialog();
                    RellenarDatagrid();
                }
                catch (Exception)
                {
                    MessageBox.Show("Ha ocurrido un error al cargar la asignatura", "Error");
                }
            }

        }
        
       /// <summary>
       /// Eliminar asignatura
       /// </summary>
        /// <param name="sender">dgAsignaturas</param>
        /// <param name="e">CellContentClick_1</param>
        private void dgAsignaturas_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
        {
            {
                ENAsignatura Asignatura = new ENAsignatura();

                if (e.RowIndex >= 0 && e.ColumnIndex == dgAsignaturas.Columns["elim"].Index)
                {
                    ENAsignatura salida = new ENAsignatura(dgAsignaturas.CurrentRow.Cells["asiCodigo"].Value.ToString(),
                                                           dgAsignaturas.CurrentRow.Cells["asiNombre"].Value.ToString(),
                                                            float.Parse(dgAsignaturas.CurrentRow.Cells["asiCreditos"].Value.ToString()),
                                                           dgAsignaturas.CurrentRow.Cells["asiReferencia"].Value.ToString(),
                                                           int.Parse(dgAsignaturas.CurrentRow.Cells["asiCuatrimestre"].Value.ToString()));

                    if (MessageBox.Show("¿Desea eliminar permanentemente la asignatura?", "Eliminar usuario", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                    {
                        Asignatura.BorrarAsignatura(salida);
                        RellenarDatagrid();
                    }
                }
            }
        }
        /// <summary>
        /// Nueva búsqueda
        /// </summary>
        /// <param name="sender">btBusquedaSimple</param>
        /// <param name="e">Click_1</param>
        private void btBusquedaSimple_Click_1(object sender, EventArgs e)
        {
            btTodasAsignaturas.Visible = true;
            RellenarDatagrid();
        }

        /// <summary>
        /// Elimina búsqueda
        /// </summary>
        /// <param name="sender"btTodasAsignaturas></param>
        /// <param name="e">Click</param>
        private void btTodasAsignaturas_Click(object sender, EventArgs e)
        {
            btTodasAsignaturas.Visible = false;
            RellenarDatagrid();
        }

        

    }


}
